#pragma once
#include "../Common.h"
#include "../Clip/ShotCutClip.h"
#include "../Effect/ShotCutEffect.h"
#include "../Caption/ShotCutCaption.h"

class ShotCutTimeLine
{
public:
    ShotCutTimeLine(const Json::Value& TimeLineJsonInfo);
    ShotCutTimeLine(){}
    ~ShotCutTimeLine();
    
    void AttachVideoClips(const VideoClip& ShotCutClipInfo);
    void AttachAudioClips(const AudioClip& ShotCutClipInfo);
    void AttachVideoEffectClips(const VideoEffectClip& ShotCutEffectClipInfo);
    void AttachMaskEffects(const MaskEffect& ShotCutEffectInfo);
    void AttachImageEffects(const ImageEffect& ShotCutImageEffectInfo);
    void AttachFontEffects(const FontEffect& ShotCutFontEffectInfo);
    void AttachCaption(const ShotCutCaption& ShotCutCaptionInfo);
    
    std::shared_ptr<Timeline> VideoTimeLine;
};
